import { MutableRefObject } from 'react';
import { extendApi } from '@inbiz/utils';
import type { IProps } from './index';

export default extendApi(
  (_events: MutableRefObject<IProps['callBackEvents']>, props: IProps, filed: any) => {
    let nowValidator = filed.validator || [];
    return {
      // 设置数字框最大值
      setMaximum: (len: number) => {
        // 支持移动端
        filed.componentProps.maximum = len;
        // let flag = false;
        // filed.validator?.map((item: any, index: number) => {
        //   if (Object.keys(item)[0] === 'maximum') {
        //     flag = true;
        //     nowValidator[index]['maximum'] = len;
        //   }
        // });
        // if (flag) {
        //   filed.setValidator(nowValidator);
        // } else {
        //   nowValidator.push({ maximum: len });
        //   filed.setValidator(nowValidator);
        // }
      },
      // 设置数字框最小值
      setMinimum: (len: number) => {
        filed.componentProps.minimum = len;

        // let flag = false;
        // filed.validator?.map((item: any, index: number) => {
        //   if (Object.keys(item)[0] === 'minimum') {
        //     flag = true;
        //     nowValidator[index]['minimum'] = len;
        //   }
        // });
        // if (flag) {
        //   filed.setValidator(nowValidator);
        // } else {
        //   nowValidator.push({ minimum: len });
        //   filed.setValidator(nowValidator);
        // }
      },
      // 设置数字框最大字数
      setMaxLength: (len: number) => {
        filed.componentProps.maxLength = len;
        // filed.setValidatorRule('validator', (value: number, rule: any, ctx: any) => {
        //   if (ctx.field.componentProps.maxLength && value) {
        //     if (len && (value + '')?.length > len) {
        //       return '字数不能大于' + len;
        //     }
        //   }
        //   return true;
        // });
      },
      clear: () => {
        props.onChange?.(null);
      },
      observerData: {
        data: {},
        update: (key:any, value:any) => {},
      },
    };
  },
);
